Format |
Syntax: |
Operation: |
Operands: |
Architecture revision |
Opcode | ||||||||||||||
1 |
ldins.b Rd:<part>, Rp[disp] |
If (part == b) Rd[7:0] = *(Rp+SE(disp12)); else if (part == l) Rd[15:8] = *(Rp+SE(disp12)); else if (part == u) Rd[23:16] = *(Rp+SE(disp12)); else Rd[31:24] = *(Rp+SE(disp12)); |
{p, d} ∈ {0, 1, …, 15} part ∈ {t, u, l, b} disp ∈ {-2048, -2047, ..., 2047} |
Rev1+ |
| ||||||||||||||
2 |
ldins.h Rd:<part>, Rp[disp] |
If (part == b) Rd[15:0] = *(Rp+SE(disp12) << 1); else Rd[31:16] = *(Rp+SE(disp12) << 1); |
{p, d} ∈ {0, 1, …, 15} part ∈ {t, b} disp ∈ {-4096, -4094, ..., 4094} |
Rev1+ |
|
This instruction loads a byte or a halfword from memory and inserts it into the addressed byte or halfword position in Rd. The other parts of Rd are unaffected.
Q: |
Not affected |
V: |
Not affected |
N: |
Not affected |
Z: |
Not affected |
C: |
Not affected |